/**
 * 星星之火 - 提示词模板类型定义
 */

export interface PromptTemplate {
  /** 模板唯一标识 */
  id: string
  /** 模板名称 */
  name: string
  /** 模板描述 */
  description: string
  /** 提示词内容，支持占位符 {{text}} */
  prompt: string
  /** 模板图标 */
  icon?: string
  /** 是否启用 */
  enabled: boolean
  /** 创建时间 */
  createdAt: number
  /** 更新时间 */
  updatedAt: number
}

/**
 * 默认的提示词模板列表
 */
export const DEFAULT_PROMPT_TEMPLATES: PromptTemplate[] = [
  {
    id: 'expand',
    name: '扩写',
    description: '对选中的文字进行扩写，增加细节和描述',
    prompt: '请对以下文字进行扩写，增加更多细节和描述，使内容更加丰富：\n\n{{text}}',
    icon: '📝',
    enabled: true,
    createdAt: Date.now(),
    updatedAt: Date.now()
  },
  {
    id: 'polish',
    name: '润色',
    description: '对选中的文字进行润色，使表达更加优雅',
    prompt: '请对以下文字进行润色，使表达更加优雅流畅：\n\n{{text}}',
    icon: '✨',
    enabled: true,
    createdAt: Date.now(),
    updatedAt: Date.now()
  },
  {
    id: 'simplify',
    name: '简化',
    description: '简化选中的文字，使其更加简洁明了',
    prompt: '请简化以下文字，保留核心意思，使其更加简洁明了：\n\n{{text}}',
    icon: '🎯',
    enabled: true,
    createdAt: Date.now(),
    updatedAt: Date.now()
  },
  {
    id: 'translate',
    name: '翻译',
    description: '将选中的文字翻译成英文',
    prompt: '请将以下中文翻译成英文：\n\n{{text}}',
    icon: '🌐',
    enabled: true,
    createdAt: Date.now(),
    updatedAt: Date.now()
  },
  {
    id: 'rewrite',
    name: '改写',
    description: '用不同的方式重新表达选中的内容',
    prompt: '请用不同的方式重新表达以下内容，保持原意：\n\n{{text}}',
    icon: '🔄',
    enabled: true,
    createdAt: Date.now(),
    updatedAt: Date.now()
  },
  {
    id: 'analyze',
    name: '分析',
    description: '分析选中文字的含义和要点',
    prompt: '请分析以下文字的核心含义和要点：\n\n{{text}}',
    icon: '🔍',
    enabled: true,
    createdAt: Date.now(),
    updatedAt: Date.now()
  }
]

/**
 * 替换提示词中的占位符
 */
export function replacePromptPlaceholders(prompt: string, text: string): string {
  return prompt.replace(/\{\{text\}\}/g, text)
}
